<?php
/**
 * Created by IntelliJ IDEA.
 * User: XD
 * Date: 2017/8/18
 * Time: 15:39
 */
$x=5; // 全局变量

function myTest()
{
    $y=10; // 局部变量
    echo "<p>测试函数内变量:<p>";
    echo "变量 x 为: $x";    // 表示局部不能直接访问全局
    echo "<br>";
    echo "变量 y 为: $y";
}

myTest();

echo "<p>测试函数外变量:<p>";
echo "变量 x 为: $x";
echo "<br>";
echo "变量 y 为: $y";  // 表示全部不能访问局部

/*
 * 变量 x 为:
变量 y 为: 10

测试函数外变量:

变量 x 为: 5
变量 y 为:
 * */

$x=5;
$y=10;

function myTest2()
{
    global $x,$y;
    $y=$x+$y;
}

myTest2();
echo "<br>";
echo "全局使用教程$y"; // 输出 15
echo "<br>";
/*
 * PHP 将所有全局变量存储在一个名为 $GLOBALS[index] 的数组中。 index 保存变量的名称。
 * 这个数组可以在函数内部访问，也可以直接用来更新全局变量。
 * */
$x=5;
$y=10;

function myTest3()
{
    $GLOBALS['y']=$GLOBALS['x']+$GLOBALS['y'];
}

myTest3();
echo "全局数组更改$y";
echo "<br>";

/*
 * 当一个函数完成时，它的所有变量通常都会被删除。然而，有时候您希望某个局部变量不要被删除。
要做到这一点，请在您第一次声明变量时使用 static 关键字：
 */
function myTest4()
{
    static $x=0;
    echo $x;
    $x++;
}

myTest4();  //0
echo "<br>";
myTest4();  //1
echo "<br>";
myTest4();  //2
echo "<br>";

function myTest5($x)
{
    echo $x;
}

myTest5(5);
echo "<br>";


?>